#include <iostream>
using namespace std;

void testPointer() {
  int a = 10;
  int* pa = &a;
  // 左值：可被存储的单元，右值：可被读取的数据
  // 赋值操作就是读出右值的内容，赋到左值空间里
  int* pb = pa;  // 左值存右值（变量pb存pa的内容）

  // 以下操作读取内容
  std::cout << a << endl;
  std::cout << pa << endl;
  std::cout << pb << endl;
  if (&pa == &pb) {  // pa的地址
    cout << "&pa == &pb\n";
  }
  if (pa == pb) {  // pa的内容
    cout << "pa == pb\n";
  }

  if (*pa == *pb) {  // pa指向的数据
    cout << "*pa == *pb\n";
  }
}

int main() { testPointer(); }